import com.google.appengine.api.datastore.Entity
import com.google.appengine.api.datastore.Blob
import com.google.appengine.api.datastore.Key
import com.google.appengine.api.datastore.*
import static com.google.appengine.api.datastore.FetchOptions.Builder.*
import com.pobos.model.*


def sesion = request.getSession(true)
def usuario = sesion.getAttribute('usuario')

if (usuario) {	
	
	Entity usuarioEntity = obtenUsuarioSesion(usuario)
	def perfil = usuarioEntity.perfil
	
	if (perfil) {
		Entity perfilEntity = obtenPerfil(perfil)
		request['perfil'] = perfilEntity
		forward "/paxinaConcello.gtpl?id=${perfilEntity.concello}"
	} else {
		request.erro = "Tes que crear un perfil cos teus datos antes de xerar contidos."
		forward '/perfil.gtpl'
	}
	
	
	
} else {
	redirect 'login.gtpl'
}


def obtenUsuarioSesion(String usuarioSesion) {
	def query = new Query(Usuario.class.simpleName)
	query.addFilter("nome", Query.FilterOperator.EQUAL, usuarioSesion)
	def preparedQuery = datastore.prepare(query)
	
	if (preparedQuery.countEntities() == 0) {
		return null;
	} else {
		if(preparedQuery.countEntities() > 1){
			return preparedQuery.asList(withLimit(1))[0]
		}else{
			return preparedQuery.asSingleEntity()
		}
	}
	
}

def obtenPerfil(Long id) {
	def key = KeyFactory.createKey("Perfil", id)			
	return datastore.get(key)
}  



